package com.ruoyi.contract.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 收付款计划对象 payment_collection_plan
 * 
 * @author ruoyi
 * @date 2024-10-18
 */
public class PaymentCollectionPlan extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long paymentCollectionPlanId;

    /** 合同id */
    @Excel(name = "合同id")
    private Long contractId;

    /** 发票金额 */
    @Excel(name = "发票金额")
    private BigDecimal invoiceAmount;

    /** 应付款金额 */
    @Excel(name = "应付款金额")
    private BigDecimal payableAmount;

    /** 应收（付）日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "应收", readConverterExp = "付=")
    private Date payableTime;

    /** 实收（付）金额（元） */
    @Excel(name = "实收", readConverterExp = "付=")
    private BigDecimal actualPayableAmount;

    /** 实收付日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实收付日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualPayableTime;

    /** 收付款状态 */
    @Excel(name = "收付款状态")
    private String state;

    /** 所属合同附件名称 */
    @Excel(name = "所属合同附件名称")
    private String contractAppendicesName;

    /** 所属合同附件id（原合同为0） */
    @Excel(name = "所属合同附件id", readConverterExp = "原=合同为0")
    private Long contractAppendicesId;

    public void setPaymentCollectionPlanId(Long paymentCollectionPlanId) 
    {
        this.paymentCollectionPlanId = paymentCollectionPlanId;
    }

    public Long getPaymentCollectionPlanId() 
    {
        return paymentCollectionPlanId;
    }
    public void setContractId(Long contractId) 
    {
        this.contractId = contractId;
    }

    public Long getContractId() 
    {
        return contractId;
    }
    public void setInvoiceAmount(BigDecimal invoiceAmount) 
    {
        this.invoiceAmount = invoiceAmount;
    }

    public BigDecimal getInvoiceAmount() 
    {
        return invoiceAmount;
    }
    public void setPayableAmount(BigDecimal payableAmount) 
    {
        this.payableAmount = payableAmount;
    }

    public BigDecimal getPayableAmount() 
    {
        return payableAmount;
    }
    public void setPayableTime(Date payableTime) 
    {
        this.payableTime = payableTime;
    }

    public Date getPayableTime() 
    {
        return payableTime;
    }
    public void setActualPayableAmount(BigDecimal actualPayableAmount) 
    {
        this.actualPayableAmount = actualPayableAmount;
    }

    public BigDecimal getActualPayableAmount() 
    {
        return actualPayableAmount;
    }
    public void setActualPayableTime(Date actualPayableTime) 
    {
        this.actualPayableTime = actualPayableTime;
    }

    public Date getActualPayableTime() 
    {
        return actualPayableTime;
    }
    public void setState(String state) 
    {
        this.state = state;
    }

    public String getState() 
    {
        return state;
    }
    public void setContractAppendicesName(String contractAppendicesName) 
    {
        this.contractAppendicesName = contractAppendicesName;
    }

    public String getContractAppendicesName() 
    {
        return contractAppendicesName;
    }
    public void setContractAppendicesId(Long contractAppendicesId) 
    {
        this.contractAppendicesId = contractAppendicesId;
    }

    public Long getContractAppendicesId() 
    {
        return contractAppendicesId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("paymentCollectionPlanId", getPaymentCollectionPlanId())
            .append("contractId", getContractId())
            .append("invoiceAmount", getInvoiceAmount())
            .append("payableAmount", getPayableAmount())
            .append("payableTime", getPayableTime())
            .append("actualPayableAmount", getActualPayableAmount())
            .append("actualPayableTime", getActualPayableTime())
            .append("state", getState())
            .append("contractAppendicesName", getContractAppendicesName())
            .append("contractAppendicesId", getContractAppendicesId())
            .append("remark", getRemark())
            .toString();
    }
}
